<?php 
	/*
	Autor:
	Fecha:
	*/
	//zona de inclusion de archivos
	include('lib/session.php');
	include('lib/data_acces.php');
	include('lib/constructor.php');
	include('lib/mysql.php');
	include('lib/paging.lib.php');
	include('lib/webeditor/spaw.inc.php');
	include('lib/upload.lib.php');
	include('sidebar.php');
	
	//clase principal
	class anuncios
	{
		//funcion que muestra todos los anuncion desde el ultimo hasta el primero
		function lista($data_acces)
		{
			$list='';
			$table='';
			$sql="SELECT
				`anuncio`.`id_anun`,
				`anuncio`.`nombre_anun`,
				`anuncio`.`fecha_anun`
				FROM
				`anuncio`
				WHERE
				`anuncio`.`activo_anun` =  '1'
				ORDER BY
				`anuncio`.`id_anun` DESC";
			$anun = new mydb($data_acces['host'], $data_acces['user'], $data_acces['pass'], $data_acces['db']);
			$anun->db_query($sql);
			$cont=1;
			while($anun->db_next())
			{
				$anun_list= $anun->row_object;
				$id_anun=$anun_list->id_anun;
				$nombre_anun=$anun_list->nombre_anun;
				$fecha_anun=$anun_list->fecha_anun;
				
				$table.='<tr>
							<td>'.$cont.'</td>
							<td>'.$nombre_anun.'&nbsp;</td>
							<td>'.$fecha_anun.'&nbsp;</td>
							<td><a href="?do=modificar/'.$id_anun.'" title="">Modificar</a></td>
							<td><a href="?do=eliminar/'.$id_anun.'" title="">Eliminar</a></td>
						</tr>';
				$cont++;
			}
			if($anun->num_rows == 0)
			{
				$table='<tr><td colspan="6" align="center">No existe ningun anuncio en este momento</td></tr>';
			}
			$tlist = new template;
			$tlist->set_template('./lib/html/anuncio/lista.html');
			$tlist->set_parameter('content', $table);
			$list .= $tlist->show();
			return $list;
		}
		//funcion que crea un nuevo anuncio
		function nuevo($data_acces)
		{
			$list='';
			$sw = new SPAW_Wysiwyg('anuncio',stripslashes($_POST['anuncio']));
			$editor .= $sw->show();
			$tlist = new template;
			$tlist->set_template('./lib/html/anuncio/nuevo.html');
			$tlist->set_parameter('anuncio', $editor);
			$list .= $tlist->show();
			return $list;
		}
		//guarda en la base de datos el anuncio
		function agregar_anuncio($data_acces)
		{
			$list='';
			
			//seccion que se encarga de subir el archivo
			$Dir='anuncios/'.$_SESSION['id_user'];
			if(!is_dir($Dir)){
				chmod('anuncios', 0755);
				@mkdir($Dir);
				chmod($Dir, 0777);
			}
			
			if($_FILES['archivo']['name'] != ''){
				$sendFile= new upload;
				$sendFile->SetDirectory($Dir);
				$sendFile->SetFile('archivo');
				$sendFile->Size('archivo');
				$newFilename=substr($_FILES['archivo']['name'],0,strlen($_FILES['archivo']['name'])-4);  
				$sendFile->UploadFile($newFilename) ;
				$nombreArchivo=$_FILES['archivo']['name'];
				$imagen=$Dir.'/'.$nombreArchivo;
			}
			else
			{
				$imagen='';
			}
			//seccion donde se recoge los datos y guarda en la base de datos
			$nombre=$_POST['nombre'];
			$id_user=$_SESSION['id_user'];
			$anuncio=$_POST['anuncio'];

			$sql='insert into anuncio(`nombre_anun`, `fecha_anun`, `id_user`, `anuncio_anun`, `imagen_anun`,`activo_anun`) 
					values(\''.$nombre.'\', Now(), \''.$id_user.'\', \''.$anuncio.'\', \''.$imagen.'\', \'1\')';
			$anun = new mydb($data_acces['host'], $data_acces['user'], $data_acces['pass'], $data_acces['db']);
			$anun->db_insert($sql);
			$error = mysql_error();
			$anun->db_close();
			if($error != '')
			{
				$list.='<div class="error">Lo siento, ocurrio un error al crear el anuncio, porfavor intente de nuevo.<br />
						Si continua el error contacte con el administrador</div><br /><br />';
			}
			else
			{
				$list.='<div class="action">El anuncio ha sido guardados exitosamente.</div><br /><br />';
			}
			$list.=anuncios::lista($data_acces);
			return $list;
		}
		//funcion que modifica un anuncio
		function modificar($data_acces)
		{
			$list='';
			$param=explode('/', $_GET['do'], 5);
			$id_anun=$param[1];
			
			$sql="SELECT
				`anuncio`.`id_anun`,
				`anuncio`.`nombre_anun`,
				`anuncio`.`fecha_anun`,
				`anuncio`.`id_user`,
				`anuncio`.`anuncio_anun`,
				`anuncio`.`imagen_anun`,
				`anuncio`.`activo_anun`
				FROM
				`anuncio`
				WHERE
				`anuncio`.`activo_anun` =  '1' AND
				`anuncio`.`id_anun` =  '".$id_anun."'";
			$anun = new mydb($data_acces['host'], $data_acces['user'], $data_acces['pass'], $data_acces['db']);
			$anun->db_query($sql);
			$anun->db_next();
			$anun_list= $anun->row_object;
			$nombre=$anun_list->nombre_anun;
			$imagen=$anun_list->imagen_anun;
			$anuncio=$anun_list->anuncio_anun;
			$anun->db_close();
			
			$sw = new SPAW_Wysiwyg('anuncio',stripslashes($anuncio));
			$editor .= $sw->show();
			$tlist = new template;
			$tlist->set_template('./lib/html/anuncio/modificar.html');
			$tlist->set_parameter('anuncio', $editor);
			$tlist->set_parameter('nombre_anun', $nombre);
			$tlist->set_parameter('imagen_anun', $imagen);
			$tlist->set_parameter('id_anun', $id_anun);
			$list .= $tlist->show();
			return $list;
		}
		//funcion que coloca en la base de datos el anuncio modificado
		function modificar_anuncio($data_acces)
		{
			$list='';
			$param=explode('/', $_GET['do'], 5);
			$id_anun=$param[1];
			
			//seccion que se encarga de subir el archivo
			$Dir='anuncios/'.$_SESSION['id_user'];
			if(!is_dir($Dir)){
				chmod('anuncios', 0755);
				@mkdir($Dir);
				chmod($Dir, 0777);
			}
			
			if($_FILES['archivo']['name'] != ''){
				$sendFile= new upload;
				$sendFile->SetDirectory($Dir);
				$sendFile->SetFile('archivo');
				$sendFile->Size('archivo');
				$newFilename=substr($_FILES['archivo']['name'],0,strlen($_FILES['archivo']['name'])-4);  
				$sendFile->UploadFile($newFilename) ;
				$nombreArchivo=$_FILES['archivo']['name'];
				$imagen=$Dir.'/'.$nombreArchivo;
			}
			else
			{
				$imagen='';
			}
			$directorio=$Dir.'/';
			$condicion = ($imagen != '' and $imagen != $directorio)? ', `imagen_anun`=\''.$imagen.'\'' : '';
			//seccion donde se recoge los datos y guarda en la base de datos
			$nombre=$_POST['nombre'];
			$id_user=$_SESSION['id_user'];
			$anuncio=$_POST['anuncio'];

			$sql='update anuncio set `nombre_anun`=\''.$nombre.'\', `fecha_anun`=Now(), `id_user`=\''.$id_user.'\', `anuncio_anun`=\''.$anuncio.'\' '.$condicion.' where `id_anun`=\''.$id_anun.'\'';
			$anun = new mydb($data_acces['host'], $data_acces['user'], $data_acces['pass'], $data_acces['db']);
			$anun->db_insert($sql);
			$error = mysql_error();
			$anun->db_close();
			if($error != '')
			{
				$list.='<div class="error">Lo siento, ocurrio un error al al modificar el anuncio, porfavor intente de nuevo.<br />
						Si continua el error contacte con el administrador</div><br /><br />';
			}
			else
			{
				$list.='<div class="action">El anuncio ha sido modificado exitosamente.</div><br /><br />';
			}
			$list.=anuncios::lista($data_acces);
			return $list;
			return $list;
		}
		//funcion que elimina un anuncio
		function eliminar($data_acces)
		{
			$list='';
			
			$param=explode('/',$_GET['do'], 5);
			$id_anun=$param[1];
			
			$sql="delete from `anuncio` where `anuncio`.`id_anun`='".$id_anun."'";
			$anun = new mydb($data_acces['host'], $data_acces['user'], $data_acces['pass'], $data_acces['db']);
			$anun->db_insert($sql);
			$error = mysql_error();
			$anun->db_close();
			if($error != '')
			{
				$list.='<div class="error">Lo siento, ocurrio un error al eliminar el anuncio, porfavor intente de nuevo.<br />
						Si continua el error contacte con el administrador</div><br /><br />';
			}
			else
			{
				$list.='<div class="action">El anuncio ha sido eliminado exitosamente.</div><br /><br />';
			}
			$list.=anuncios::lista($data_acces);
			return $list;
			return $list;
		}
		//funcion donde se selecciona la accion a tomar
		function menu($data_acces)
		{
			$list='';
			$param=explode('/',$_GET['do'],5);
			$option=$param[0];
			switch($option){
				case 'nuevo':
					$list=anuncios::nuevo($data_acces);
				break;
				case 'agregar':
					$list=anuncios::agregar_anuncio($data_acces);
				break;
				case 'modificar':
					$list=anuncios::modificar($data_acces);
				break;
				case 'modificar_anuncio':
					$list=anuncios::modificar_anuncio($data_acces);
				break;
				case 'eliminar':
					$list = anuncios::eliminar($data_acces);
				break;
				default:
					$list=anuncios::lista($data_acces);
			}
			return $list;
		}
		//funcion que muestra el menu de navegacion
		function menu_nav($data_acces)
		{
			$tmenu = new template;
			$tmenu->set_template('lib/html/navegation/navegation.html');
			$tmenu->show();
			return $tmenu->show();
		}
		//contenido del sidebar
		function sidebar($data_acces)
		{
			$list='';
			$list.=sidebar::show_page($data_acces);
			return $list;
		}
		//function que estructura la pagina para ser mostrada
		function show_page($data_acces)
		{
			$tindex = new template;
			$tindex->set_template('lib/html/index.html');
			$tindex->set_parameter('nav_bar', anuncios::menu_nav($data_acces));
			$tindex->set_parameter('content_page', anuncios::menu($data_acces));
			$tindex->set_parameter('content_sidebar', anuncios::sidebar($data_acces));
			return $tindex->show();
		}
	}
	$page = new anuncios;
	echo $page->show_page($data_acces);
?>